﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace arkanoid
{
    class clsSprite: GameComponent
    {
        public Texture2D textura;
        public Vector2 posicao, velocidade;
        public Boolean visivel = true;

        public clsSprite(Game _game, Texture2D _textura, Vector2 _posicao,  Vector2 _velocidade) : base(_game)
        {
            posicao = _posicao;  
            textura = _textura;  
            velocidade = _velocidade;
        }

        //  Atualiza a posição da sprite
        public override void Update(GameTime gameTime)
        {
            //  Faz a sprite quicar nas bordas da janela
            if (posicao.Y > 600 - textura.Width || posicao.Y <0)
                velocidade.Y *= -1;
            if (posicao.X > 800 - textura.Width || posicao.X < 0)
                velocidade.X *= -1;
            posicao += velocidade;
        }

        public void Draw(SpriteBatch spriteBatch, Color cor)
        {
            spriteBatch.Draw(textura, posicao, cor);
        }

        //  Retorna true se as duas sprites estão colidindo
        public bool Colide(clsSprite outraSprite)
        {
            Rectangle esteRect = new Rectangle((int)posicao.X, (int)posicao.Y, textura.Width, textura.Height);
            Rectangle outroRect = new Rectangle((int)outraSprite.posicao.X, (int)outraSprite.posicao.Y, outraSprite.textura.Width, outraSprite.textura.Height);
            return esteRect.Intersects(outroRect);
        }


    }
    
}
